今天我們要來試著用張量來寫簡單計算使用者偏好的程式,也就是所謂的推薦引擎,當然這只是簡單的範例程式而已。
首先我們要先來介紹一下點積。
點積是用來表達為向量的張量間相似性質的方法,越相似則點積越高。
接下來這個城市會有幾個條件,
首先我們先設定樂團名票數風格等資料:
接著,由於所需資料皆變成張量了,於是我們可以透過賭取變數快速知道投票結果,然後用1和0來表達所有資料。例如[1,1,0,0,0,0]表示第0個樂團(Nirvan)的風格有第一項和第二項。
然後進行計算每個人喜歡的風格流派
執行後的結果
這張量表現出每個的特徵,第0個也就是Gant在第0個檢索有最高值27,也就是說他喜歡的風格流派是Grunge。
或者我們可以呼叫函數topk來確認最高值為多少
最後我們將這些資料帶回javascript列印結果
注意!雖然上方的有列印出統計後解果的張量,不過我是將它回傳到javascript上寫的。
其實如果回到javascript上的話tensorflow -node.js會更快,不過我這裡引用的不是他
最後的結果全部印出是長這樣
我們可以看到Todd的偏好是Industrial音樂,而Jed喜歡它的boy band。
我們在整個程式終將資料成功的載入張量中並透過是學籍和快速地進行運算而不是以每個人進行的方式,是不是很方便呢?
今天我就先講到這,明天來談談影像的張量是如何表示。